//============================================================================
// Nome        : Cliente.h
// Autores     : T1G7
//                                      Felipe Galvão do Espírito Santo
//                                      Ivanilda Maísa Costa Brazão de Almeida
//                                      Paulo Jorge de Faria dos Reis
// Versão      : 1.0
// Data        : Maio de 2011
// Copyright   : Creative Commons 2.0
// Descrição   : CAL 2011 - TG1
//               Tema 12 - Transporte de pacientes de uma clínica de saúde.
//============================================================================

#ifndef CLIENTE_H_
#define CLIENTE_H_

#include <string>
#include "Auxiliar.h"

using std::string;

//! Definição de um cliente/utente do serviço dentro do contexto da aplicação.
/*!
 *  Classe básica que possui os dados e funções suficientes para identificar e trabalhar com os clientes do serviço.
 */
class Cliente
{
public:
	Cliente();								//! Construtor básico sem conteúdo.
	Cliente(string linha, const string separadores = ";");	//! Construtor que permite realizar a criação do objecto da linha de registo em ficheiro de arquivo.
	virtual ~Cliente();						//! Destrutor.
    string getMorada() const;				//! Devolve uma string com a morada do cliente.
    string getNome() const;					//! Devolve uma string com o nome do cliente.
    int getGeoCoord() const;				//! Devolve o identificador da localização do cliente.
    int getID() const;						//! Devolve o identificador do cliente.
    void setGeoCoord(int id);				//! Identificador da localização geográfica do cliente.
    void setMorada(string morada);			//! Define a morada de um cliente.
    void setNome(string linha);				//! Define o nome de um cliente.
    void toString(char * linha, const string separadores = ";");	//! Devolve os dados formatados do objecto na string linha.
	char* guardar(const string separadores = ";");		//! Devolve uma string que permite guardar o objecto num ficheiro de arquivo.

private:
	string nome;		//! Nome do cliente.
	string morada; 		//! Morada do cliente.
    int geoCoord;		//! Identificador geográfico.
	int id_cliente;		//! Identificador único de um cliente.
};
#endif /* CLIENTE_H_ */
